import nltk
import re

# Tokenizer
# quebra a o texto em tokens
def tokenizer(texto):
    pattern = r'(\d+\s?(\w|-)\s?\d+)|\w?\$?\s?(\d)+(\.\d+)*(,\d+)|\w+|[^\w\s]+'
    # explicao do pattern:
    # (\d+\s?(\w|-)\s?\d+) --> pega definicoes do tipo 1 a 0, 1 - 1
    # \w - qualquer palavra
    # [^\w\s]+ - caracteres que nao sejam espaco
    # \w?\$?\d+(,\d+)? - valores monetarios
    # (\d)+(\.\d+)+ - valores numericos
    
    return nltk.tokenize.regexp_tokenize(texto, pattern)

# aplica regras de normalizacao nas tokens

def normalizador(tokens = []):
    return tokens.lower() not in ('o', 'a', 'os', 'as')
    
 